[Script Pascal] Verificando quantos Caracteres por Segundo tem a legenda

Publicado por rafael farias novaes 26/01/2009

[ Hits: 7.087 ]

Homepage: http://www.vivaolinux.com.br/perfil/verPerfil.php?login=bfmano

Download pascal.txt




Seguindo a linha de garimpagem do Pix, estou pesquisando na internet alguns scripts pascal que facilitam nossa vida.

Este gera um relatório dizendo se sua legenda está nos "padrões" de 25 caracteres exibidos em 1 segundo (tempo-limite que a maioria das pessoas leva pra ler a legenda). OBS: o padrão oficial para dvd's comerciais e filmes de cinema é de 13 a 18 cps em média.

Salve este código com o nome ShowCPS.pas na pasta PascalScripts do Subtitle Workshop

  



Esconder código-fonte

// Made by Buzcatcher

program ShowCPS;

// ---------------------------------------------

const
  cpsreport = 'C:\cps_report.txt';
  CRLF = ''#13''#10;
  Rsep = ' | ';

var
  i, n, p : Integer;
  duration, sublength, cps : Integer;
  subtxt, report : String;
  Ms : TmemoryStream;

begin
  Ms := TmemoryStream.Create;
  n := GetSubtitleCount-1;

  for i := 0 to n do
  begin
    subtxt := GetSubtitleText(i);
    sublength := length(subtxt);
    
    p := pos(''#13''#10, subtxt);
    if (p>0) then
      sublength := sublength - 2;
               
    duration := GetSubtitleFinalTime(i) - GetSubtitleInitialTime(i);
    cps := round((sublength * 1000)/ duration);
    
  report := IntToStr(i+1) + Rsep + IntToStr(sublength) + ' Characters' + Rsep + IntToStr(duration) + ' duration(ms)' + Rsep + '==> ' + IntToStr(cps) + ' Char/sec.'
  if (cps > 25) then
    report := report + Rsep + 'LEGENDA MUITO RAPIDA'
  report := report + CRLF
  
  
  Ms.Write(report, length(report));
  
  try
        Ms.SaveToFile(cpsreport);
    except
        MsgBox('Couldn''t write to file!', '&Ok', '', '', $20);
    end;

  end;
  Ms.Free;
  MsgBox('Report saved in C:\cps_report.txt', '&Ok', '', '', $20);
end.

Scripts recomendados

ZCodEdit - Editor de textos com sintaxe HTML e Pascal

Arquivo texto

Numeros pitagoricos

Funções de Manipulação de Arquivos Pascal

Criando Objetos 2


  

Comentários
[1] Comentário enviado por m4iir1c10 em 26/01/2009 - 02:06h

Legal Rafael, so tem um problema no seu script... creio que voce escreveu ele no ambiente do windows e esqueceu de fazer as modificacoes nescessarias para fazer ele funcionar no Linux...

"Report saved in C:\cps_report.txt" nao seria melhor salvar em ~/ ou $HOME ?

[2] Comentário enviado por ldesignerl em 26/01/2009 - 13:38h

Legal mas como o cara disse.
nao seria melhor salvar em ~/ ou $HOME

vlw

[3] Comentário enviado por metin em 26/01/2009 - 13:39h

^^


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts